package org.huawei260.TiKu.C;

import java.util.Scanner;

/**
 * @Auther: qingle
 * @Date: 2024/10/28-13:41
 * @Description:
 * 小明在玩一个游戏，游戏规则如下：在游戏开始前，小明站在坐标轴原点处（坐标值为 0）给定一组指令和一个幸运数，每个指令都是一个整数，小明按照指定的要求前进或者后退指定的步数。
 *
 * 前进代表朝坐标轴的正方向走，后退代表朝坐标轴的负方向走，幸运数为一个整数，如果某个指令正好和幸运数相等，则小明行进步数加 1 。
 *
 * 例如： 幸运数为 3 ，指令数组为[2, 3, 0, -5]
 *
 * 指令为 2 ，表示前进 2 步
 *
 * 指令为 3 ，正好好和幸运数相等，前进 3+1=4 步
 *
 * 指令为 0 ，表示原地不动，既不前进，也不后退
 *
 * 指令为 -5 ，表示后退 5 步。
 *
 * 请你计算小明在整个游戏过程中，小明所处的最大坐标值。
 *
 * 输入格式
 * 第一行输入 1 个数字，代表指令的总个数 n(1≤n≤100）
 *
 * 第二行输入 1 个数字，代表幸运数 m(−100≤m≤100)
 *
 * 第三行输入 n 个指令，每个指令值的取值范围为： − 100 ≤ 指令值 ≤ 100
 *
 * @version: 1.0
 */
public class C_2525_小明的幸运数_answer {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int lucky = sc.nextInt();
		sc.nextLine();
		int[] nums = new int[n];
		String[] s = sc.nextLine().split(" ");
		for (int i = 0; i < n; i++) {
			nums[i] = Integer.parseInt(s[i]);
		}
		System.out.println(getMax(nums, lucky));
	}

	public static int getMax(int[] nums, int lucky)
	{
		int max = 0;
		int sum = 0;
		for (int i = 0; i < nums.length; i++) {
			sum += nums[i];
			if (sum == lucky) {
				sum += 1;
			}
			max = Math.max(max, sum);
		}
		return max;
	}
}
